1
選擇要保留的資料列
DSAI2202Lab 7: Reasoning Across Relationships

UniLearn 的註冊系統與 LMS 並未包含相同的學生 ID。團隊需要產出多份報表,而每份報表對於以下問題都有不同的答案: 「哪些來源資料列必須出現?」

重複使用實驗 6 的資料庫

如果你已經執行過 lab6_7_setup.sql (實驗 6 用過的),請保留該資料。否則,請在 pgAdmin 中開啟導師提供的共用設定檔並執行一次。請在每個新的 Query Tool 連線中選取 lab6_7 。

從你已熟悉的 Join 開始

  1. 檢視 students 與 lms_roster:22 個註冊系統 ID 與 6 個 LMS ID。
  2. 執行實驗 6 配對規則中的 INNER JOIN。
  3. 找出同時存在於兩個來源中的四個 ID。
  4. 說明為什麼此結果不可能是任一來源的完整清單。

五項報表需求

列出共用帳號;保留每位註冊系統學生;保留每個 LMS 帳號;對帳兩個來源;產生學生–課程選項。你將為這些需求撰寫 INNER、LEFT、RIGHT、FULL 與 CROSS JOIN 查詢。

✍️ 預測缺少的脈絡
S103 已註冊但沒有 LMS 帳號。S901 已匯入 LMS 但不在註冊系統中。在完整報表中,兩者各應歸屬於何處?
共用帳號
SET search_path TO lab6_7;

SELECT s.student_id AS registry_id, s.student_name,
       r.student_id AS lms_id, r.lms_name
FROM students AS s
INNER JOIN lms_roster AS r
  ON s.student_id = r.student_id
ORDER BY s.student_id;
檢查配對的 ID

共四列:S101、S102、S105 與 S121。每個 ID 在兩張資料表中都是唯一的,因此每組配對只會出現一次。此報表僅包含共用帳號。

Uma(S121)有 LMS 帳號,但她並未選修任何課程。帳號配對並不代表已參與課程。